/*==============================================================*/
/* DBMS name:      PostgreSQL 8                                 */
/* Created on:     04/08/2014 10:39:26 p. m.                    */
/*==============================================================*/


drop table ADMINSTRADOR
go
drop table BICICLETA
go
drop table REGISTRO
go
drop table USUARIO
go
/*==============================================================*/
/* Table: ADMINSTRADOR                                          */
/*==============================================================*/
create table ADMINSTRADOR (
   IDENTIFICACION_ADMIN VARCHAR(11)          not null,
   NOMBRES              VARCHAR(20)          not null,
   APELLIDOS            VARCHAR(20)          not null,
   ROL                  INT2                 not null,
   USUARIO              VARCHAR(15)          not null,
   CLAVE                VARCHAR(50)          not null,
   constraint PK_ADMINSTRADOR primary key (IDENTIFICACION_ADMIN)
)
go
comment on table ADMINSTRADOR is
'Guarda los administradores del sistema sisbici'
go
comment on column ADMINSTRADOR.IDENTIFICACION_ADMIN is
'Numero de identificacion del administrador'
go
comment on column ADMINSTRADOR.NOMBRES is
'Nombres del administrador'
go
comment on column ADMINSTRADOR.APELLIDOS is
'Apellidos del administrador'
go
comment on column ADMINSTRADOR.ROL is
'Rol del administrador (1 administrativo o 2 celador)'
go
comment on column ADMINSTRADOR.USUARIO is
'Usuario para el login'
go
comment on column ADMINSTRADOR.CLAVE is
'Contrasena para el login'
go
/*==============================================================*/
/* Table: BICICLETA                                             */
/*==============================================================*/
create table BICICLETA (
   COD_BARRAS           VARCHAR(15)          not null,
   IDENTIFICACION_USU   VARCHAR(11)          null,
   MARCA                VARCHAR(20)          not null,
   COLOR                VARCHAR(15)          not null,
   NUM_SERIE            VARCHAR(20)          not null,
   OBSERVACIONES        VARCHAR(200)         null,
   constraint PK_BICICLETA primary key (COD_BARRAS)
)
go
comment on table BICICLETA is
'Guarda las bicicletas que se registran en el sistema sisbici'
go
comment on column BICICLETA.COD_BARRAS is
'Codigo de barras asignado a la bicicleta'
go
comment on column BICICLETA.IDENTIFICACION_USU is
'Numero de identificacion del ususario dueno de la bicicleta'
go
comment on column BICICLETA.MARCA is
'Marca de la bicicleta'
go
comment on column BICICLETA.COLOR is
'Color de la bicicleta'
go
comment on column BICICLETA.NUM_SERIE is
'Numero de serie de la bicicleta'
go
comment on column BICICLETA.OBSERVACIONES is
'Observaciones de la bicicleta'
go
/*==============================================================*/
/* Table: REGISTRO                                              */
/*==============================================================*/
create table REGISTRO (
   ID_REGISTRO          SERIAL not null,
   COD_BARRAS           VARCHAR(15)          null,
   IDENTIFICACION_ADMIN VARCHAR(11)          null,
   ENTRADA              TIMESTAMP            not null,
   SALIDA               TIMESTAMP            null,
   OSERVACIONES         VARCHAR(200)         null,
   constraint PK_REGISTRO primary key (ID_REGISTRO)
)
go
comment on table REGISTRO is
'Contiene la informacion de entrada y salida de las bicicletas'
go
comment on column REGISTRO.ID_REGISTRO is
'Autoincrementable, llave primaria'
go
comment on column REGISTRO.COD_BARRAS is
'Codigo de barras de la bicicleta que ingresa'
go
comment on column REGISTRO.IDENTIFICACION_ADMIN is
'Numero de identificacion del administrador que hace el ingreso de la bicicleta'
go
comment on column REGISTRO.ENTRADA is
'Fecha y hora de entrada de la bicicleta'
go
comment on column REGISTRO.SALIDA is
'Fecha y hora de salida  de la bicicleta'
go
comment on column REGISTRO.OSERVACIONES is
'Observaciones de la bicicleta ingresada'
go
/*==============================================================*/
/* Table: USUARIO                                               */
/*==============================================================*/
create table USUARIO (
   IDENTIFICACION_USU   VARCHAR(11)          not null,
   COD_UD               VARCHAR(15)          not null,
   NOMBRES              VARCHAR(20)          not null,
   APELLIDOS            VARCHAR(20)          not null,
   TELEFONO             VARCHAR(11)          null,
   constraint PK_USUARIO primary key (IDENTIFICACION_USU)
)
go
comment on table USUARIO is
'Guarda los duenos de las bicicletas'
go
comment on column USUARIO.IDENTIFICACION_USU is
'Numero de identificacion de los usuarios'
go
comment on column USUARIO.COD_UD is
'Codigo institucional que lo vincula a la universidad'
go
comment on column USUARIO.NOMBRES is
'Nombres del usuario'
go
comment on column USUARIO.APELLIDOS is
'Apellidos del usuario'
go
comment on column USUARIO.TELEFONO is
'Telefono del usuario'
go
alter table BICICLETA
   add constraint FK_BICICLET_FK_USU_BI_USUARIO foreign key (IDENTIFICACION_USU)
      references USUARIO (IDENTIFICACION_USU)
      on delete restrict on update restrict
go
alter table REGISTRO
   add constraint FK_REGISTRO_FK_ADMIN__ADMINSTR foreign key (IDENTIFICACION_ADMIN)
      references ADMINSTRADOR (IDENTIFICACION_ADMIN)
      on delete restrict on update restrict
go
alter table REGISTRO
   add constraint FK_REGISTRO_FK_BICI_R_BICICLET foreign key (COD_BARRAS)
      references BICICLETA (COD_BARRAS)
      on delete restrict on update restrict
go
